The present invention relates generally to a programming tool that is designed to interface between programmers and computers. This programming tool also supports a programming method that allows a programmer to make extensive use of tables as a mean to represent the logical thinking of a programmer reflected in a program written by this programming tool, and enabling the programming process easily to be understood by third parties. Thus, these improvements enhance the efficiency of programming, reduce the likelihood of the presence of program bugs or structural errors. In addition, the training cost required for a programmer to learn the programming method is minimal. The resulting programs composed with the invented method also will be easy to be read and to be maintained by any programmer.
Traditional programming languages define a set of programming instructions and programming rules. Most commonly used programming languages such as BASIC, C and JAVA are written in the form of a top down line by line listing in sequence. In many applications, hundreds of pages of codes are written to describe the job function. It is extremely difficult for a programmer to follow the logical flow of a program from a long listing. The size of programs therefore causes difficulties in subsequent maintenance work. Besides, multiple pages of programs filled with sequential lines of codes are very difficult to be understood by another programmer who has not previously involved in the job. Although many compact instructions or programming symbols had been invented, the size of many programs written in many different programming languages are still too big to be easily interpreted by a professional programmer. In many situations, the author of a program also finds difficulty to understand his or her own program after an extended period of time. The requirement of compact size in instruction set and readability contradicts to each other. It is highly desirable to have a programming method, which provides compact program size and is also simple to be understood by other programmers, preferably for the inexperienced people as well.
Every time when a new programming language is invented, coding symbols and instruction set are designed to describe a programming function. Rules are also designed to restrict how the programming instructions are to be used in order to make a program written with the language interpretable and executable by a computing device. In many situations, the instruction manual describing a programming language is over two inches thick in order to document all these instruction set and describe the programming rules. It is not unusual to require months of training effort to be required in order for a programmer to learn the whole instruction set and understand all the programming rules of a new programming language. More programming tricks are usually learned through subsequent years of programming experience.
Although many programming languages allow a program to include conditionally jump, call functions or branches to other segments of the program according to the structural requirements of the job, the logic flow of these interactive branching activities inside the program structure is extremely difficult to be interpreted by a professional programmer even though a great amount of time may have been spent in reading the program.
There are various kinds of programming languages available in the market, each dedicated to a certain kind of application, or designed according to a particular programming environment. Many other programming languages are designed to program specific hardware configurations or system. Often, different programming languages make use of different symbols or even expression strings to represent an instruction describing a similar function. A programmer may often be confused which symbols or expressions to be used, after learning many different languages, each with different format and instruction expressions. It is highly desirable to have a new programming tool enabling a programmer to overcome this difficulty.
Because most programming languages are designed optimally to interpret the programming function specific to their application environment, many programming jobs which includes a large variety of functions are best to be dissected into modules, with different modules written in different languages, according to their specific requirements. It is therefore highly desirable to have a special programming method suitable for managing the integration of program segments written in different languages. With the popularity of interne, it is also highly desirable to have a generic programming method suitable for coordinating programming modules of different format to form a combined program, which is suitable for downloading the program to individual local computers remote from the host computer. For this type of application, the program must be of compact nature and be able to self-reconfigure according to the nature of the various local computers.
Applicants issued U.S. Pat. No. 5,867,818 and UK Patent GB2306024 first introduced a primitive table format method for programming a hardware controller chip having multiple input and output terminals. The present application is directed to the various improvements achieved from the further intense research since this primitive structure was invented.